package Framework.MQ
{
    import Framework.Serialize.*;
    import flash.events.*;
    import mx.events.*;

    public class HandlerId extends Object implements IEventDispatcher
    {
        private var _3575610type:int;
        private var _3355id:int;
        private var _bindingEventDispatcher:EventDispatcher;

        public function HandlerId()
        {
            this._bindingEventDispatcher = new EventDispatcher(IEventDispatcher(this));
            
        }

        public function __write(param1:SerializeStream) : void
        {
            param1.writeInt(this.type);
            param1.writeInt(this.id);
            
        }

        public function __read(param1:SerializeStream) : void
        {
            this.type = param1.readInt();
            this.id = param1.readInt();
            
        }

        public function get type() : int
        {
            return this._3575610type;
        }

        public function set type(param1:int) : void
        {
            var _loc_2:* = this._3575610type;
            if (_loc_2 !== param1)
            {
                this._3575610type = param1;
                if (this.hasEventListener("propertyChange"))
                {
                    this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "type", _loc_2, param1));
                }
            }
            
        }

        public function get id() : int
        {
            return this._3355id;
        }

        public function set id(param1:int) : void
        {
            var _loc_2:* = this._3355id;
            if (_loc_2 !== param1)
            {
                this._3355id = param1;
                if (this.hasEventListener("propertyChange"))
                {
                    this.dispatchEvent(PropertyChangeEvent.createUpdateEvent(this, "id", _loc_2, param1));
                }
            }
            
        }

        public function addEventListener(param1:String, param2:Function, param3:Boolean = false, param4:int = 0, param5:Boolean = false) : void
        {
            this._bindingEventDispatcher.addEventListener(param1, param2, param3, param4, param5);
            
        }

        public function dispatchEvent(event:Event) : Boolean
        {
            return this._bindingEventDispatcher.dispatchEvent(event);
        }

        public function hasEventListener(param1:String) : Boolean
        {
            return this._bindingEventDispatcher.hasEventListener(param1);
        }

        public function removeEventListener(param1:String, param2:Function, param3:Boolean = false) : void
        {
            this._bindingEventDispatcher.removeEventListener(param1, param2, param3);
            
        }

        public function willTrigger(param1:String) : Boolean
        {
            return this._bindingEventDispatcher.willTrigger(param1);
        }

    }
}
